自定义的 sinc
函数:
import numpy as np
def sinc(x):
if x == 0.0:
return 1.0
else:
w = np.pi * x
return np.sin(w) / w
作用于单个数值:
sinc(0.0)
sinc(3.0)
但这个函数不能作用于数组:
x = np.array([1,2,3])
sinc(x)
可以使用 numpy
的 vectorize
将函数 sinc
向量化,产生一个新的函数:
vsinc = np.vectorize(sinc)
vsinc(x)
其作用是为 x
中的每一个值调用 sinc
函数:
import matplotlib.pyplot as plt
%matplotlib inline
x = np.linspace(-5,5,101)
plt.plot(x, vsinc(x))
因为这样的用法涉及大量的函数调用,因此,向量化函数的效率并不高。